Skip to content

feat(files_sharing): import the sharing dialog directly - #64125

Merged
AndyScherzinger merged 1 commit into
masterfrom
feat/sharing-dialog-direct-import
Sep 10, 2026
Merged

feat(files_sharing): import the sharing dialog directly#64125
AndyScherzinger merged 1 commit into
masterfrom
feat/sharing-dialog-direct-import

Conversation

@skjnldsv

@skjnldsv skjnldsv commented Sep 8, 2026

Copy link
Copy Markdown
Member
  • Resolves: #

Summary

susnux pointed out on #62593 that a Vue 3 library can run inside a Vue 2 app if it brings its own Vue, so the OCA.Sharing bridge the sidebar used to reach the dialog through is unnecessary. @nextcloud/sharing 1.0.0-beta.3 declares vue and @nextcloud/vue as dependencies instead of peers, and this drops the bridge, its Vue 3 entry point, the app symlink into the Vue 3 frontend, and the script and style that loaded it.

npm nests the library's own Vue in the legacy frontend, and its webpack config sets no vue alias to override that:

build/frontend-legacy/node_modules/vue                                             2.7.16
build/frontend-legacy/node_modules/@nextcloud/sharing                              1.0.0-beta.3
build/frontend-legacy/node_modules/@nextcloud/sharing/node_modules/vue             3.5.42
build/frontend-legacy/node_modules/@nextcloud/sharing/node_modules/@nextcloud/vue  9.11.0

The symlink was also what pulled this Vue 2 app through the Vue 3 lint and Vitest configs, so I reverted the exclusions I added for it — npm run lint is 0 errors without them.

Unit tests and lint pass; the sharing end-to-end suite reached 22 of 35 with no failures before I stopped it, so it still needs a full run.

TODO

  • Full sharing end-to-end run (npx playwright test --project=sharing)
  • Screenshot of the dialog opened from the sidebar

Checklist

AI (if applicable)

  • The content of this PR was partly or fully generated using AI

@skjnldsv
skjnldsv marked this pull request as ready for review September 8, 2026 14:56
@skjnldsv
skjnldsv requested review from a team as code owners September 8, 2026 14:56
@skjnldsv
skjnldsv requested review from Altahrim, kristian-zendato, leftybournes, provokateurin, sorbaugh and susnux and a lite review from Copilot and removed request for a team and Copilot September 8, 2026 14:56
@skjnldsv skjnldsv self-assigned this Sep 10, 2026
@skjnldsv skjnldsv added the 3. to review Waiting for reviews label Sep 10, 2026
@skjnldsv
skjnldsv force-pushed the feat/sharing-dialog-direct-import branch 2 times, most recently from 695479c to 3c07f2d Compare September 10, 2026 07:25
The dialog is a Vue 3 component and this frontend is Vue 2, which is why it was
reached through a bridge: a separate Vue 3 entry point registered it on
`OCA.Sharing`, and the sidebar called through that global.

@nextcloud/sharing 1.0.0-beta.3 declares Vue as a dependency rather than a peer,
so npm installs its own copy next to it and the dialog runs on that one, the
same way @nextcloud/dialogs already does. The sidebar imports the library
directly and the bridge goes away: its entry point, the app symlink into the
Vue 3 frontend, and the script and style that loaded it.

That symlink was also what pulled this Vue 2 app through the Vue 3 lint and test
configs, so the exclusions added for it are no longer needed.

Signed-off-by: Barthelemy Briand <barthelemy.briand@nextcloud.com>
Assisted-by: ClaudeCode:claude-opus-4-8
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
@skjnldsv
skjnldsv force-pushed the feat/sharing-dialog-direct-import branch from 3c07f2d to 62fcfa7 Compare September 10, 2026 07:42
@skjnldsv

Copy link
Copy Markdown
Member Author

/backport! to stable35 please

@AndyScherzinger AndyScherzinger added this to the Nextcloud 36 milestone Sep 10, 2026
@AndyScherzinger
AndyScherzinger merged commit 5a39647 into master Sep 10, 2026
215 of 217 checks passed
@AndyScherzinger
AndyScherzinger deleted the feat/sharing-dialog-direct-import branch September 10, 2026 09:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants